<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
            "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>



<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META name="GENERATOR" content="hevea 1.08">

<base target="main">
<script language="JavaScript">
<!-- Begin
function loadTop(url) {
  parent.location.href= url;
}
// -->
</script>
<LINK rel="stylesheet" type="text/css" href="cil.css">
<TITLE>
Installation
</TITLE>
</HEAD>
<BODY >
<A HREF="cil001.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="ciltoc.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
<A HREF="cil003.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
<HR>

<H2 CLASS="section"><A NAME="htoc2">2</A>&nbsp;&nbsp;Installation</H2>
You will need OCaml release 3.08 or higher to build CIL. CIL has been tested
on Linux and on Windows (where it can behave at either Microsoft Visual C or
gcc).<BR>
<BR>
If you want to use CIL on Windows then you must get a complete installation
of <TT>cygwin</TT> and the source-code OCaml distribution and compile it yourself
using the cygwin tools (as opposed to getting the Win32 native-code version of
OCaml). If you have not done this before then take a look
<A HREF="../ccured/setup.html">here</A>. (Don't need to worry about <TT>cvs</TT> and
<TT>ssh</TT> unless you will need to use the master CVS repository for CIL.)
<OL CLASS="enumerate" type=1><LI CLASS="li-enumerate">
Download the CIL <A HREF="distrib">distribution</A> (latest version is
<A HREF="distrib/cil-1.3.4.tar.gz"><TT>distrib/cil-1.3.4.tar.gz</TT></A>). See the Section&nbsp;<A HREF="cil020.html#sec-changes">20</A> for recent changes to the CIL distribution.
<LI CLASS="li-enumerate">Unzip and untar the source distribution. This will create a directory
 called <TT>cil</TT> whose structure is explained below.<BR>
<TT>tar xvfz cil-1.3.4.tar.gz</TT>
<LI CLASS="li-enumerate">Enter the <TT>cil</TT> directory and run the <TT>configure</TT> script and then 
 GNU make to build the distribution. If you are on Windows, at least the
 <TT>configure</TT> step must be run from within <TT>bash</TT>.<BR>
&nbsp;&nbsp;&nbsp;&nbsp;<CODE>cd cil</CODE><BR>
&nbsp;&nbsp;&nbsp;&nbsp;<CODE>./configure</CODE><BR>
&nbsp;&nbsp;&nbsp;&nbsp;<CODE>make</CODE><BR>
&nbsp;&nbsp;&nbsp;&nbsp;<CODE>make quicktest</CODE><BR>
<LI CLASS="li-enumerate">You should now find <TT>cilly.asm.exe</TT> in a
subdirectory of <TT>obj</TT>. The name of the subdirectory is either <TT>x86_WIN32</TT>
if you are using <TT>cygwin</TT> on Windows or <TT>x86_LINUX</TT> if you are using
Linux (although you should be using instead the Perl wrapper <TT>bin/cilly</TT>).
Note that we do not have an <TT>install</TT> make target and you should use Cil
from the development directory. 
<LI CLASS="li-enumerate">If you decide to use CIL, <B>please</B>
<A HREF="mailto:necula@cs.berkeley.edu">send us a note</A>. This will help recharge
our batteries after more than a year of development. And of course, do send us
your bug reports as well.</OL>
The <TT>configure</TT> script tries to find appropriate defaults for your system.
You can control its actions by passing the following arguments:
<UL CLASS="itemize"><LI CLASS="li-itemize">
<TT>CC=foo</TT> Specifies the path for the <TT>gcc</TT> executable. By default
whichever version is in the PATH is used. If <TT>CC</TT> specifies the Microsoft
<TT>cl</TT> compiler, then that compiler will be set as the default one. Otherwise,
the <TT>gcc</TT> compiler will be the default.
</UL>
CIL requires an underlying C compiler and preprocessor. CIL depends on the
underlying compiler and machine for the sizes and alignment of types.The
installation procedure for CIL queries the underlying compiler for
architecture and compiler dependent configuration parameters, such as the size
of a pointer or the particular alignment rules for structure fields. (This
means, of course, that you should re-run <TT>./configure</TT> when you move CIL to
another machine.)<BR>
<BR>
We have tested CIL on the following compilers:
<UL CLASS="itemize"><LI CLASS="li-itemize">
On Windows, <TT>cl</TT> compiler version 12.00.8168 and 13.00.9466. 
Run <TT>cl</TT> with no arguments to get the compiler version. 
<LI CLASS="li-itemize">On Windows, using <TT>cygwin</TT> and <TT>gcc</TT> version 2.95.3, 3.0,
 3.2, 3.3, and 3.4.
<LI CLASS="li-itemize">On Linux, using <TT>gcc</TT> version 2.95.3, 3.0, 3.2, 3.3, and 4.0.
</UL>
Others have successfully used CIL with Mac OS X (on both PowerPC and
x86), Solaris, and *BSD. If you make any changes to the build
system in order to run CIL on your platform, please send us a patch.<BR>
<BR>
 <HR>
<A HREF="cil001.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="ciltoc.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
<A HREF="cil003.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
</BODY>
</HTML>
